Давайте рассмотрим описание класса CMYMFC созданного в шаге Шаг 116 - Как создать COM объект с использованием MFC. Одного объявления класса наследником от CCmdTarget недостаточно. Один из них DECLARE_OLECREATE.
Макрокоманда DECLARE_OLECREATE используется чтобы дать возможность объектам наследникам от CCmdTarget создаваться через автоматизацию OLE. Эта макрокоманда дает возможность другим OLE приложениям создать объекты этого типа. Если DECLARE_OLECREATE включен в объявление класса, то IMPLEMENT_OLECREATE должен быть включен в реализацию класса. Объявление класса, использующее DECLARE_OLECREATE должно также использовать DECLARE_DYNCREATE или DECLARE_SERIAL.
Посмотрим, как реализован макрос IMPLEMENT_OLECREATE.
// {E053D25E-DDA6-4949-A51C-EE4997569F5B} IMPLEMENT_OLECREATE(CMYMFC, "TEST.MYMFC", 0xe053d25e, 0xdda6, 0x4949, 0xa5, 0x1c, 0xee, 0x49, 0x97, 0x56, 0x9f, 0x5b)
В данном макросе описано фактическое имя класса, объектное имя для других приложений и CLSID класса.
Описание макроса находиться в #include <afxdisp.h>